Open upstream release docs PR as draft#801
Merged
Conversation
Keep the auto-generated release docs PR as a draft until the full augmentation job (skill, review, autofix, body update, reviewer assignment) finishes. Prevents accidental approve/merge on a half- written PR and consolidates reviewer notifications to a single coherent signal when the PR is actually reviewable. - Bootstrap PR now created with --draft - New "Convert PR to draft" step flips Renovate-opened PRs at the start of the job (idempotent via isDraft check) - Reviewer assignment moved from pre-skill to post-commit-push so the review-requested email fires alongside the body augmentation - New "Flip PR to ready for review" step at the end, gated on success() so failed runs leave the PR as draft for a human Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the upstream release docs automation workflow to keep auto-generated PRs in draft until the full augmentation pipeline (skill generation, editorial review, autofix, body update, reviewer assignment) finishes, reducing the risk of reviewers acting on an incomplete PR and consolidating reviewer notifications.
Changes:
- Bootstrap-created PRs are now opened as draft (
gh pr create --draft). - Renovate/retied PRs are explicitly converted to draft at the start of the augmentation job, and flipped back to ready for review only at the end on success.
- Reviewer assignment is moved later in the workflow to occur after commit/push, near the PR body augmentation.
Two issues surfaced in Copilot's review of the initial commit: - "Convert PR to draft" runs before the PR branch is checked out, so `gh pr view` / `gh pr ready` must pass --repo or they fail with "not a git repository". The existing pre-checkout step at line 121 already calls this out; apply the same fix here. - Moving reviewer assignment to the end of the job introduces a new state: the augment-PR-body step is `if: always()`, but reviewers is not, so on upstream skill/autofix failures the augment step runs with `COMPARE_OK` unset. The previous `!= "true"` branch rendered that as "Compare failed — pinned tag missing upstream", which is misleading because the compare was never attempted. Handle empty as a distinct "Not attempted" branch. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
danbarr
approved these changes
Apr 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Keep the auto-generated release docs PR as a draft until the full augmentation job (skill, editorial review, autofix, body update, reviewer assignment) finishes. Prevents accidental approve/merge on a half-written PR and consolidates reviewer notifications into a single coherent signal when the PR is actually reviewable.
Flow on a happy path:
review-requestedemail fires)On failure the PR stays as draft; the existing failure-comment step points reviewers to the retry command.
Changes to
.github/workflows/upstream-release-docs.yml:gh pr createnow uses--draft.isDraftpre-check keeps it idempotent on retries.gh pr edit --add-reviewerruns, so this is the moment reviewers are pinged.success()so failed runs leave the PR as draft.Type of change
Related issues/PRs
Discussed internally while watching the toolhive 0.24.1 docs PR progress.
Test plan
gh workflow run upstream-release-docs.yml -f project_id=<id> -f new_tag=<tag>) against a test project and confirm the PR opens as draft, reviewers are assigned only after the body is augmented, and the PR flips to ready at the end.gh workflow run upstream-release-docs.yml -f pr_number=<n>) against a PR already in draft state and confirm no-op on the draft flip.🤖 Generated with Claude Code